Many automation applications employ motion control systems to control position and speed motion devices. Such motion control systems typically include one or more motors or similar actuating devices operating under the guidance of a controller, which sends position and/or speed control instructions to the motor in accordance with a user-defined control algorithm or program. In a common architecture, the controller sends the control instructions to a motor drive (e.g., as an analog signal or a series of discrete step signals), and the motor drive controls the driving current output to the motor in accordance with the control instructions, facilitating the controlled movement of the motor.
When the controller determines that the motion system must move to a new position or alter its velocity (e.g., in accordance with the control algorithm or a user request), the controller must calculate a position or velocity trajectory—referred to as a motion profile—for transitioning the motion system from its current position/velocity to the target position/velocity. The motion profile defines the motion system's velocity, acceleration, and/or position over time as the system moves from the current state to the target state. Once this motion profile is calculated, the controller translates the motion profile into appropriate control signaling for moving the motion system through the trajectory defined by the profile.
In some applications, the various segments (or stages) of the motion profile are calculated based on predetermined user-defined constraints (e.g., maximum velocity, maximum acceleration, etc.), where the defined constraints may correspond to mechanical limitations of the motion system. Given these constraints and the desired target position and/or velocity, the controller will calculate the motion profile used to carry out the desired move or velocity change. The resultant motion profile is also a function of the type of profile the controller is configured to generate—typically either a trapezoidal profile or an S-curve profile. For a trapezoidal profile, the controller will calculate the motion profile according to three distinct stages—an acceleration stage, a constant velocity stage, and a deceleration stage. Such a profile results in a trapezoidal velocity curve. The S-curve profile type modifies the trapezoidal profile by adding four additional stages corresponding to these transitions. These additional stages allow gradual transitions between the constant (or zero) velocity stages and the constant acceleration/deceleration stages, providing smoother motion and affording a finer degree of control over the motion profile.
Since the trapezoidal profile always accelerates or decelerates at the maximum defined acceleration rate, this profile type tends to achieve faster point-to-point motion relative to S-curve profiles. However, since the transitions between the constant (or zero) velocity and the acceleration stages are abrupt, the trapezoidal curve may cause excessive system jerk at these transitions. Moreover, there is greater risk of overshooting the target position or velocity when using a trapezoidal motion profile, which can reduce accuracy or cause the controller to expend additional work and settling time bringing the motion device back to the desired target. Alternatively, the S-curve profile can yield greater accuracy due to the more gradual transitions between the constant velocity and acceleration/deceleration phases, but at the cost of additional time spent on the initial point-to-point move.
The above-described is merely intended to provide an overview of some of the challenges facing conventional motion control systems. Other challenges with conventional systems and contrasting benefits of the various non-limiting embodiments described herein may become further apparent upon review of the following description.